#ifndef IFILEMANAGER_H
#define IFILEMANAGER_H

#include <string>
using std::string;

//!Interface of the File Manager component.
class IFileManager
{
public:
	//!Destructor.
	virtual ~IFileManager(void){};

public:

	//!Load a .zpak file.
	/*
	\param filename Name of the file to load.
	\return True if the loading succeeded. False if the loading failed.
	*/
	virtual bool loadFile(const string& filename)=0;

	//!Get a pointer to a data packed in a file.
	/*!
	Return a pointer to the file packed inside a zpak file. The function find which zpak file it is.
	\param pakedFilename Name of the file that we need.
	\param buffer Pointer to data of the file.
	\param size Size of the buffer.
	\return True if the file was found. False if the file doesn't exist in any .zpak file.
	*/
	virtual bool getPackedFile(const string& pakedFilename, char** buffer, int* size)=0;

	//!Close all the file
	/*!
	This function close the file and delete the buffers which were containing the files.
	\return True if it succeeded. False if it failed.
	*/
	virtual bool closeFiles(void)=0;
};

#endif

















